﻿
using System;
using System.Runtime.Serialization;
using V82;
using V82.Перечисления;//Ссылка;
namespace V82.Перечисления//Ссылка
{
	[DataContract]
	public enum ТООшибкиФР
	{
		[NonSerialized]
		ПустаяСсылка = - 1,
	///<summary>
	///Убедитесь, что в настройках пользователя задан корректный пароль администратора
	///</summary>
		[EnumMember(Value = "{\"Ссылка\":\"328337a0-f862-4834-b083-ad62b412683b\", \"Представление\":\"ОшибкаНеобходимПарольАдминистратора\"}")]
		ОшибкаНеобходимПарольАдминистратора = 0,//Для выполнения данной операции необходим корректный пароль администратора
	///<summary>
	///Убедитесь, что в настройках пользователя задан корректный пароль кассира
	///</summary>
		[EnumMember(Value = "{\"Ссылка\":\"0bda1161-4e95-4894-8ab9-bb79f81aa366\", \"Представление\":\"ОшибкаНеобходимПарольКассира\"}")]
		ОшибкаНеобходимПарольКассира = 1,//Для выполнения данной операции необходим корректный пароль кассира
	///<summary>
	///В случае, если данная возможность предусмотрена фискальным регистратором, рекомендуется проверить его настройки в форме обработки "Настройка торгового оборудования".
	///</summary>
		[EnumMember(Value = "{\"Ссылка\":\"9293c6fb-57a4-4b37-8b35-184c0c12bbd9\", \"Представление\":\"ОшибкаНетВозможностиПечатиПКО\"}")]
		ОшибкаНетВозможностиПечатиПКО = 2,//Данный фискальный регистратор не имеет возможности отражать в чеке факт наличных расчетов с юридическими лицами
	///<summary>
	///Выполнение операции в данный момент невозможно. В случае, если данная ошибка возникает при попытке закрыть чек необходимо уменьшить сумму сдачи.
	///</summary>
		[EnumMember(Value = "{\"Ссылка\":\"5168c955-46c8-4472-be24-9898165cf25f\", \"Представление\":\"ОшибкаНетНаличных\"}")]
		ОшибкаНетНаличных = 3,//Недостаточно наличных средств в кассе для выполнения операции
	///<summary>
	///Необходимо закрыть или аннулировать чек и повторить попытку ещё раз.
	///</summary>
		[EnumMember(Value = "{\"Ссылка\":\"3400597b-8ae5-4783-87e5-29cc8b8cab8b\", \"Представление\":\"ОшибкаРежимПечатиЧека\"}")]
		ОшибкаРежимПечатиЧека = 4,//Выполнение данного действия невозможно в режиме печати чека
		[EnumMember(Value = "{\"Ссылка\":\"4fe1b775-c954-4781-99ab-3b978de7645d\", \"Представление\":\"ОшибкаСуммыНедостаточно\"}")]
		ОшибкаСуммыНедостаточно = 5,//Переданной суммы недостаточно для оплаты
	}
	public static partial class ТООшибкиФР_Значения//:ПеречислениеСсылка
	{
		///<summary>
		///Убедитесь, что в настройках пользователя задан корректный пароль администратора
		///</summary>
		public static readonly Guid ОшибкаНеобходимПарольАдминистратора = new Guid("62ad83b0-12b4-3b68-4834-f862328337a0");//Для выполнения данной операции необходим корректный пароль администратора
		///<summary>
		///Убедитесь, что в настройках пользователя задан корректный пароль кассира
		///</summary>
		public static readonly Guid ОшибкаНеобходимПарольКассира = new Guid("79bbb98a-1af8-66a3-4894-4e950bda1161");//Для выполнения данной операции необходим корректный пароль кассира
		///<summary>
		///В случае, если данная возможность предусмотрена фискальным регистратором, рекомендуется проверить его настройки в форме обработки "Настройка торгового оборудования".
		///</summary>
		public static readonly Guid ОшибкаНетВозможностиПечатиПКО = new Guid("4c18358b-120c-d9bb-4b37-57a49293c6fb");//Данный фискальный регистратор не имеет возможности отражать в чеке факт наличных расчетов с юридическими лицами
		///<summary>
		///Выполнение операции в данный момент невозможно. В случае, если данная ошибка возникает при попытке закрыть чек необходимо уменьшить сумму сдачи.
		///</summary>
		public static readonly Guid ОшибкаНетНаличных = new Guid("989824be-5c16-5ff2-4472-46c85168c955");//Недостаточно наличных средств в кассе для выполнения операции
		///<summary>
		///Необходимо закрыть или аннулировать чек и повторить попытку ещё раз.
		///</summary>
		public static readonly Guid ОшибкаРежимПечатиЧека = new Guid("cc29e587-8c8b-8bab-4783-8ae53400597b");//Выполнение данного действия невозможно в режиме печати чека
		public static readonly Guid ОшибкаСуммыНедостаточно = new Guid("973bab99-e78d-5d64-4781-c9544fe1b775");//Переданной суммы недостаточно для оплаты
		public static ТООшибкиФР Получить(this ТООшибкиФР Значение, byte[] Ссылка)
		{
			return Получить(Значение, new Guid(Ссылка));
		}
		public static ТООшибкиФР Получить(this ТООшибкиФР Значение, Guid Ссылка)
		{
			if(Ссылка == ОшибкаНеобходимПарольАдминистратора)
			{
				return ТООшибкиФР.ОшибкаНеобходимПарольАдминистратора;
			}
			else if(Ссылка == ОшибкаНеобходимПарольКассира)
			{
				return ТООшибкиФР.ОшибкаНеобходимПарольКассира;
			}
			else if(Ссылка == ОшибкаНетВозможностиПечатиПКО)
			{
				return ТООшибкиФР.ОшибкаНетВозможностиПечатиПКО;
			}
			else if(Ссылка == ОшибкаНетНаличных)
			{
				return ТООшибкиФР.ОшибкаНетНаличных;
			}
			else if(Ссылка == ОшибкаРежимПечатиЧека)
			{
				return ТООшибкиФР.ОшибкаРежимПечатиЧека;
			}
			else if(Ссылка == ОшибкаСуммыНедостаточно)
			{
				return ТООшибкиФР.ОшибкаСуммыНедостаточно;
			}
			return ТООшибкиФР.ПустаяСсылка;
		}
		public static byte[] Ключ(this ТООшибкиФР Значение)
		{
			return Ссылка(Значение).ToByteArray();
		}
		public static Guid Ссылка(this ТООшибкиФР Значение)
		{
			switch (Значение)
			{
				case ТООшибкиФР.ОшибкаНеобходимПарольАдминистратора: return ОшибкаНеобходимПарольАдминистратора;
				case ТООшибкиФР.ОшибкаНеобходимПарольКассира: return ОшибкаНеобходимПарольКассира;
				case ТООшибкиФР.ОшибкаНетВозможностиПечатиПКО: return ОшибкаНетВозможностиПечатиПКО;
				case ТООшибкиФР.ОшибкаНетНаличных: return ОшибкаНетНаличных;
				case ТООшибкиФР.ОшибкаРежимПечатиЧека: return ОшибкаРежимПечатиЧека;
				case ТООшибкиФР.ОшибкаСуммыНедостаточно: return ОшибкаСуммыНедостаточно;
			}
			return Guid.Empty;
		}
	}
}